www.gusucode.com > 有监督的 CNN 网络完成对MNIST 数字的识别 > 有监督的 CNN 网络完成对MNIST 数字的识别/CNN—卷积神经网络数字识别/@cnn/subsref.m

    function v=subsref(v,subscripts)
%SUBSREF Reference fields of a neural network.
% Assume no error
err = 0;

% Short hand fields
%type = subscripts(1).type;
%subs = subscripts(1).subs;

% For each level of subscripts
for i=1:length(subscripts)

  type = subscripts(i).type;
  subs = subscripts(i).subs;
  
  switch type
  
  % Paretheses
  case '()'
    eval('v=v(subs{:});','err=1;');
  
  % Curly bracket
  case '{}'
    eval('v=v{subs{:}};','err=1;');
  
  % Dot
  case '.'
    if isa(v,'struct') || isa(v,'network')
      
      % NNT 5.0 Backward compatibility
      if strcmpi(subs,'numTargets')
        subs = 'numOutputs';
        nntobsu(mfilename,'"numTargets" is obsolete.',...
          'Use "numOutputs" to determine numbers of outputs and targets.');
      elseif strcmpi(subs,'targetConnect')
        subs = 'outputConnect';
        nntobsu(mfilename,'"targetConnect" is obsolete.',...
          'Use "outputConnect" to determine connections for outputs and targets.');
      elseif strcmpi(subs,'targets')
        subs = 'outputs';
        nntobsu(mfilename,'"targets" is obsolete.',...
          'Use "outputs" to determine properties of outputs and targets.');
      end
      
      f = fieldnames(v);
      for i=1:length(f)
        if strcmpi(subs,f{i})
          subs = f{i};
          break;
        end
      end
    end

  eval(['v=v.' subs ';'],'err=lasterr;');
  end
  
  % Error message
  if err
    errmsg = lasterr;
 
   % Work around: remove any reference to variable V
   ind = findstr(errmsg,' ''v''');
    if (ind)
      errmsg(ind+(0:3)) = [];
    end
  
  error(errmsg)
  end
end